package com.solution.admin.coupon.dao;

import java.util.List;
import java.util.Map;

import com.solution.admin.coupon.entity.CouponEntity;
import com.solution.common.dao.BaseDao;
import com.solution.common.page.PageBean;
import com.solution.common.page.PageParam;

/**
 * 优惠券信息DAO接口
 * 
 * @author xu_cc
 * @date 2017-11-16 11:11:20
 */
public interface CouponDao extends BaseDao<CouponEntity> {

    /**
     * 保存优惠券信息
     * 
     * @param couponEntity
     * @return
     * @author xu_cc
     * @date 2017-11-16 11:11:20
     */
    public long saveCoupon(CouponEntity couponEntity);

    /**
     * 分页查询优惠券信息信息
     * 
     * @param pageParam
     *            分页对象
     * @param coupon
     *            分页参数
     * @return PageBean 分页参数及数据
     * @author xu_cc
     * @date 2017-11-16 11:11:20
     */
    public PageBean listCouponPage(PageParam pageParam, Map<String, Object> param);

    /**
     * 更新优惠券信息
     * 
     * @param couponEntity
     * @return
     * @author xu_cc
     * @date 2017-11-16 11:11:20
     */
    public int updateCoupon(CouponEntity couponEntity);

    /**
     * 删除优惠券信息
     * 
     * @param id
     * @return
     * @author xu_cc
     * @date 2017-11-16 11:11:20
     */
    public int deleteCouponById(Long id);

    /**
     * 根据优惠券信息类型获取优惠券信息
     * 
     * @param param
     * @return
     * @author xu_cc
     * @date 2017-11-16 11:11:20
     */
    public List<CouponEntity> listCoupon(Map<String, Object> param);

    /**
     * 用于下拉列表（活动赠优惠券）
     * 
     * @param param
     * @return List<CouponEntity>
     * @author xu_cc
     * @throws Exception
     *             exception
     * @Date 创建时间：2017年11月21日 下午4:39:04
     */
    public List<CouponEntity> listByPromotionCombo(Map<String, Object> param);
    
    /**
     * 查询可发放优惠券用户
     * @param pageParam
     * @param paramMap
     * @return
     * @author xkl
     * @date 2017年12月23日 下午2:05:36
     */
    public PageBean listCouponCustomerPage(PageParam pageParam, Map<String, Object> paramMap);

    /**
     * 查询客户未使用的优惠券
     * @param param
     * @return
     * @author lilp
     */
	public List<CouponEntity> listUserCoupon(Map<String, Object> param);
    
    /**
     * 查询所有可发放优惠券用户
     * @param paramMap
     * @return
     * @author xkl
     * @date 2017年12月23日 下午2:04:20
     */
    public List<Map<String,Object>> listCouponCustomer(Map<String, Object> paramMap);
}
